package com.mashuai.utils.toolkit.core.msValidation.annotation;

import com.mashuai.utils.toolkit.achieve.MsExegesis;
import org.springframework.stereotype.Component;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 针对参数类型是Map、Bean等{}的json格式进行空值判断
 * 检查方法中的参数，指定位置的参数值是否为空，
 * 逻辑：默认检查方法index=0的位置参数，优先判断参数是否为null，不为空，则根据keys的值，进行判空。（排除基本数据类型）
 */
@MsExegesis("针对参数类型是Map、Bean等{}的json格式进行空值判断")
@Component
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MsCheckObjParams {

    @MsExegesis("需要校验的字段key名称")
    String[] keys() default {};
    @MsExegesis("默认检验第一个位置的对象参数")
    int index() default 0;
    @MsExegesis("校验不通过返回的提示信息")
    String message() default "";


}
